package com.hlkj.pay.vo.merchant.req.payment;

import java.math.BigDecimal;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import com.hlkj.pay.enums.CommonEnum;
import com.hlkj.pay.vo.BaseReq;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
* 商户代付详情
* @TableName t_merchant_payment_detail
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MerchantPaymentDetailReq extends BaseReq {
    @Schema(description = "服务商编码")
    @NotEmpty(message = "子通道编码 不能为空")
    private String mchChannelCode;
    @Schema(description = "交易密码")
    @NotEmpty(message = "交易密码 不能为空")
    private String tranPwd;
    /**
    * 代付金额
    */
    @Schema(description ="代付金额")
    @NotNull(message = "代付金额 不能为空")
    private BigDecimal payAmount;
    /**
    * 账号名称
    */
    @Schema(description ="账号名称")
    @NotEmpty(message = "账号名称 不能为空")
    private String name;
    /**
    * 账号code
    */
    @Schema(description ="卡号")
    @NotEmpty(message = "卡号 不能为空")
    private String cardNo;
    /**
    * 银行编码
    */
    @Schema(description ="银行编码")
    private String bankCode;
    /**
    * 银行名称
    */
    @Schema(description ="银行名称")
    // @NotEmpty(message = "银行名称 不能为空")
    private String bankName;

    @Schema(description = " 账号类型 0：对公账户 1：对私法人账户 2：对私非法人账户 下发方式 银行卡类型必填")
    private Integer accountType;
    /**
    * 联行号
    */
    @Schema(description ="联行号")
    private String branchCode;
    /**
    * 联行号
    */
    @Schema(description ="分行名称")
    private String branchName;
    /**
    * 银行卡绑定手机号
    */
    @Schema(description ="银行卡绑定手机号")
    // @NotEmpty(message = "银行卡绑定手机号 不能为空")
    private String cardPhone;
    /**
    * 省份名称
    */
    @Schema(description ="省份名称")
    private String provinceName;
    /**
    * 城市名称
    */
    @Schema(description ="城市名称")
    private String cityName;
    /**
    * 0:收款方付款;1:付款方付费
    */
    @Schema(description ="付款方 0:收款方付款;1:付款方付费")
    private Integer feePayer= CommonEnum.YES_NO_TYPE.YES.getCode();
    /**
     * 备注
     */
    @Schema(description ="备注")
    private String remark;
    /**
     * 备注
     */
    @Schema(description ="后端默认 前端不要管 类型 0 充值 1 代付")
    private Integer paymentType= CommonEnum.YES_NO_TYPE.NO.getCode();
    @Schema(description = "下发方式 1- 支付宝账户； 2- 微信零钱；3-银行卡 4-渠道内部户")
    @NotNull(message = "下发方式 不能为空")
    private Integer entryType;
    @Schema(description = "收款方类型，1=个人，2=企业，入账方式为3或4必传，其它非必传")
    private Integer payeeType;

}
